package examples;

public class stringTest {
    public static void main(String[] args) {
        //创建字符串
        String str = new String("sleep");//sleep

        //连接多个字符
        String str1=new String("ing");
        String str2 = str+str1;
        System.out.println(str2);//sleeping

        //连接其他数据类型
        int sleeptime = 12;
        double gametime = 2.5;
        System.out.println("我要"+str+" "+sleeptime+"小时"+"并且我还花费"+gametime+"个小时玩游戏");
//我要sleep 12小时并且我还花费2.5个小时玩游戏
        //获取字符串长度
        int length = str.length();
        System.out.println("字符串长度为："+length);//5

        //字符串查找
        //1:indexOf(String s)  首次出现的索引
        int p = str.indexOf("p");
        System.out.println("p第一次出现的索引为："+p);//sleep  4
        //2:lastIndexOf(String str)  最后出现的索引
        int e = str.lastIndexOf("e");
        System.out.println("e最后一次出现的索引为："+e);//sleep  3
        //参数是""时，返回结果好str.length()的结果一样
        int i = str.lastIndexOf("");
        System.out.println("空字符串最后一次出现的索引为："+i);// sleep 5

        //获取指定索引位置的字符
        char a = str.charAt(2);
        System.out.println("索引为1的字符为："+a);//sleep e

        //获取子字符串     空格也占一个索引位置
        //1:substring(int beginIndex)  从指定索引截取到结尾
        String substring = str.substring(2);
        System.out.println(substring);//sleep  eep
        //2:substring(int beginindex , int endIndex),从beginindex开始，截取到endIndex结束。
        String substring1 = str.substring(1, 4);// 4取不到
        System.out.println(substring1);//sleep  lee

        //去除空格  trim()去除前面和后面的空格
        String str3 =new String("  I am cbk  ");
        System.out.println(str3.length());
        String trim = str3.trim();
        System.out.println(trim);
        System.out.println(trim.length());

        //字符串替换  str.replace(CharSequence target , CharSequence replacement)
        //                      target:要替换的字符   replacement：用于替换原来字符串的内容
        String zxc = "example";
        String replace = zxc.replace("e", "E");
        System.out.println(replace);//Example

        //判断字符串的开始和结尾
        //startsWith()   判断当前字符串对象的前缀是否为参数指定的字符串
        boolean e1 = zxc.startsWith("Ex");
        boolean e2 = zxc.startsWith("ex");
        System.out.println(e1);//false
        System.out.println(e2);//true

        //endsWith()   判断指定的字符串是否为字符串对象的结束
        boolean e3 = zxc.endsWith("le");
        boolean e4 = zxc.endsWith("ie");
        System.out.println(e3);//true
        System.out.println(e4);//false

        //判断字符串是否相等
        //1:equals()  两个字符串具有相同的字符和长度时，返回true    区分大小写
        // 2 :equalsIgnoreCase()  忽略字母大小写
        String s = "zxc";
        String S1="Zxc";
        System.out.println(s.equals(S1));//false
        System.out.println(s.equalsIgnoreCase(S1));//true

        //字母大小写转换
        //1:toLowerCase()  转换成小写
        String lowerCase = S1.toLowerCase();
        System.out.println(lowerCase);//zxc
        //2:toUpperCase()  转换成大写
        String upperCase = lowerCase.toUpperCase();
        System.out.println(upperCase);//ZXC
    }
}
